Information processing apparatus and method

ABSTRACT

In instances where a plurality of objects is aligned by an operation using a pointing device having only a single point for pointing, the procedure is a troublesome one. To solve this problem, an information processing apparatus according to the invention includes a display unit configured to display objects; a recognition unit configured to recognize that a plurality of positions on the display unit have been designated; and an alignment unit. In a state in which a first position contained in an area in which a plurality of objects are displayed has been recognized by the recognition unit and a second position on the display unit has been recognized by the recognition unit, the alignment unit aligns the plurality of objects on the display unit in accordance with path of movement when movement of the first position or second position has been detected.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technique for aligning objectscomposed of figures, images and characters, and the like.

2. Description of the Related Art

A rendering tool having a function for aligning objects that a user haslaid out on content is known in the prior art. A pointing device usedwhen aligning objects is a device such as a mouse, which has only onepoint for pointing.

Accordingly, in a case where a plurality of objects are aligned, theuser first selects the plurality of objects by dragging a mouse and thencauses an alignment menu to be displayed by right-clicking the mouse, byway of example.

The user further selects the alignment mode of the desired type fromamong the items displayed in the menu. Thus, the user follows a seriesof steps to align the plurality of objects.

Conventionally, a technique using a touch-sensitive panel or the likefor allowing a user to designate a plurality of positions by his fingerssimultaneously (referred to as “multi-touch”) is also known.

Further, a technique for enlarging, reducing and rotating an objectbased upon a change in distance or a change in angle between two pointsdesignated by a finger has been disclosed (e.g., see the specificationof Japanese Patent Laid-Open No. 2001-290585).

However, in a case where a plurality objects are aligned by an operationusing a pointing device such as a mouse having only one point forpointing, a problem which arises is that the procedure followed by theuser is troublesome.

Further, an operation using multi-touch is limited to an operationdirected toward only one object.

SUMMARY OF THE INVENTION

The present invention has been devised in view of the foregoing problemsand provides an efficient alignment of a plurality of objects. Inaddition, the present invention improves operability when a plurality ofobjects are aligned. Furthermore, the present invention provides asophisticated alignment of a plurality of objects by an intuitiveoperation.

For example, an information processing apparatus according to thepresent invention has the structure set forth below.

In one aspect of the present invention, an information processingapparatus includes a display unit configured to display objects, arecognition unit configured to recognize that a plurality of positionson the display unit have been designated, and an alignment unit, whereinin a state in which a first position contained in an area in which aplurality of objects are displayed has been recognized by therecognition unit and a second position on the display unit has beenrecognized by the recognition unit, the alignment unit is configured toalign the plurality of objects on the display unit in accordance withpath of movement when movement of the first position or second positionhas been detected.

In accordance with the present invention, it is possible to align aplurality of objects efficiently. Further, it is possible to improveoperability when a plurality of objects are aligned. Further, it ispossible to align a plurality objects by an intuitive operation.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams illustrating the configuration of aninformation processing apparatus according to the present invention;

FIGS. 2A to 2F are diagrams illustrating examples of placement ofobjects on a screen;

FIGS. 3A to 3D are diagrams illustrating examples of data structures ofa content management table 43;

FIGS. 4A to 4D are diagrams illustrating examples of placement ofobjects on a screen;

FIG. 5 is a flowchart illustrating display control processing;

FIG. 6 is a flowchart illustrating designation-start processing;

FIG. 7 is a flowchart illustrating designation-move processing;

FIG. 8 is a flowchart illustrating designation-terminate processing;

FIG. 9 is a flowchart illustrating alignment processing;

FIGS. 10A to 10E are diagrams illustrating examples of placement ofobjects on a screen;

FIGS. 11A and 11B are diagrams illustrating examples of data structuresof a content management table 43;

FIG. 12 is a flowchart illustrating designation-start processing;

FIG. 13 is a flowchart illustrating designation-move processing; and

FIG. 14 is a flowchart illustrating designation-terminate processing.

DESCRIPTION OF THE EMBODIMENTS

Preferred embodiments of the present invention will be described belowin detail. It should be noted that the present invention is not limitedto the embodiments below and merely illustrates concrete examplesadvantageous for working the present invention.

Further, all combinations of features described in the followingembodiments are not necessarily essential as means for solving theproblems to which the present invention is directed.

First Embodiment

FIG. 1A is a block diagram illustrating the hardware configuration of aninformation processing apparatus according to this embodiment.

The information processing apparatus includes a CPU 1 for controllingthe overall apparatus; a ROM 2 storing a booting program and permanentdata; and a RAM 3 that functions as a main memory device.

A hard-disk drive 4 stores an operating system 41, a content displayprogram 42 and a content management table 43.

A liquid crystal display (LCD) 5 is one example of a display unit.Supply of image data to the LCD 5 is performed by an LCD controller 5 a.A touch-sensitive panel 6 forming a coordinate input unit issuperimposed upon and affixed to the surface of the LCD 5.

Any well-known method such as an ultrasonic method, opto-electronicmethod or electrostatic capacitance method can be adopted as the methodof implementing the touch-sensitive panel.

A controller 6 a of the touch-sensitive panel detects the coordinates ofa position on the touch-sensitive panel 6 touched by a user and sendsthe coordinates to the CPU 1 as an interrupt signal. The controller 6 ais adapted so as to accept a touch operation performed at least at twolocations.

FIG. 1B is a block diagram illustrating the functional configuration ofthe information processing apparatus according to this embodiment.

The information processing apparatus includes a coordinate input unit101, a designation determination unit 102, a designated-state managementunit 103, a display controller 104, a content editor 105, an objectmanagement unit 106 and an image display unit 107.

The coordinate input unit 101 detects start, move and termination ofdesignation of points on the LCD 5. The designation determination unit102 determines to what kind of designation a coordinate inputcorresponds. The designated-state management unit 103 manages adesignated state decided by a plurality of coordinate inputs.

The display controller 104 extracts and displays a displayable portionof content on which objects are placed. The content editor 105 lays outobjects and changes coordinates.

The object management unit 106 manages the state of an object, and theimage display unit 107 displays a displayable portion.

An overview of functions capable of being implemented by the informationprocessing apparatus according to this embodiment will be describednext.

The content display program 42 in this embodiment is a browser programfor browsing content such as photograph files. When the content displayprogram 42 is invoked, a screen of the kind shown in FIG. 2A isdisplayed on the LCD 5.

It is possible for objects to be sorted and laid out depending upon anattribute such as time of creation. Layout by a move operation performedby the user also is possible and positions of the objects can be groupedtogether by user operation.

By viewing the screen, the user can approximately ascertain the numberof objects in each group. Furthermore, each object may be displayed inthe form of a thumbnail image or the like.

FIG. 3A is a diagram illustrating an example of data structure of thecontent management table 43 when the screen shown in FIG. 2A is beingdisplayed on the LCD 5.

As shown in FIG. 3A, items of data indicating shape, center position,size, rotation, selected state, aligned state and pre-alignment positionare stored in the table for every object ID. The display controller 104refers the content management table 43 to place each object.

The state shown in FIG. 2A is one in which none of the objects have beenselected and aligned. Accordingly, items “SELECT” and “ALIGNMENT” ofeach object are all “FALSE” in the content management table 43.

Specifically, the data structure of the group of objects indicated at701 in FIG. 2A corresponds to IMG0001 to IMG0007 (indicated at referencenumerals 801) in FIG. 3A.

FIG. 2B is a diagram illustrating a situation in which object selectionhas been carried out by the user pressing the touch-sensitive panel 6outside the objects with a finger 901 of his right hand and performing atracing motion so as to surround one or more objects to which processingis to be applied.

When tracing is finished, each object within the selected group, whichis indicated at 1001, is highlighted, as illustrated in FIG. 2C.

If it is assumed that the object IDs of the group 1001 selected at thistime are IMG0001 to IMG0007, then the item “SELECT” corresponding toeach of IMG0001 to IMG0007 in the content management table 43 changes to“TRUE”, as illustrated in FIG. 3B.

FIG. 2D is a diagram illustrating an example in which the user presses aselected object with a finger 1201 of this left hand to therebydesignate an alignment group as a single-point designated state. Here,an alignment group means a group of objects that should be aligned.

By merely pressing one object in the selected group, all of the objectsin the selected group 1001 can be designated as objects to be aligned.

Now the item “ALIGNMENT” corresponding to each of IMG0001 to IMG0007 inthe content management table 43 changes to “TRUE”, as shown in FIG. 3C.

From the state shown in FIG. 2D in which the user has pressed a firstposition corresponding to a selected object with the finger 1201 of hisleft hand, the user can press a second position corresponding to aselected object and perform a rightward linear tracing motion with afinger 1401 of his right hand, as illustrated in FIG. 2E.

If the user lifts the finger 1201 of his left hand and the finger 1401of his right hand from the touch-sensitive panel 6 after performing thetracing motion, objects 1501 of interest are aligned and displayed alonga horizontal straight line (one-dimensionally) in the direction oftracing motion, as illustrated in FIG. 2F.

Now, as shown in FIG. 3D, the item “CENTER POSITION” corresponding toeach of IMG0001 to IMG0007 in the content management table 43 takes oncoordinate values for which a linear alignment is achieved.

More specifically, the y coordinates of “CENTER POSITION” of IMG0001 toIMG0007 all take on the same value and the x coordinates take on valuesthat do not overlap one another.

Further, as illustrated in FIG. 4A, the user presses a first positioncorresponding to a selected object at 1703 with the index finger 1701 ofhis right hand, presses a second position outside the area of theselected object with the thumb 1702 of his right hand, describes an arcwith his index finger 1701 and then lifts finger 1701 and thumb 1702.

When this is done, the objects of interest are aligned and displayed inthe shape of a fan, as indicated at 1801 in FIG. 4B. Although the pointsto which the finger 1701 is moved in this case are inside the area ofthe alignment group, the fixed point indicated at 1702 is outside thearea of the alignment group.

In this case, the first input position is inside the area of a selectedobject and the second input position is outside the area of a selectedobject.

Further, as illustrated in FIG. 4C, the user presses a first point of aselected object with a finger 1901 of his left hand, performs anupwardly directed linear tracing motion with a finger of his right hand,then performs a rightward directed linear tracing motion with the samefinger of his right hand while continuing to press the end point andthen lifts the fingers 1901 and 1902.

That is, this is a case where a position pressed by a finger is firstmoved linearly along a specific direction and then is moved linearlyalong a direction having an approximate right-angle relationship withrespect to the specific direction. It should be noted that theapproximate right angle refers to an angle that approximates a rightangle.

When this is done, the objects of interest are aligned in the form of amatrix (two-dimensionally), as indicated at 2001 in FIG. 4D. That is, ina case where the path of the points of movement describes lines at aright angle, the objects are aligned in multiple rows and multiplecolumns (two-dimensionally).

It should be noted that FIG. 4D adopts an alignment method in which theaspect ratio is the smallest and the centroid is placed at whichever ofthe horizontal and vertical dimensions is near the fulcrum position.However, this does not impose any limitation upon the invention.

For example, objects may be aligned in the form of a matrix inconformity with the aspect ratio of a right-angle path traced by theuser. That is, if a right-angle path in which the vertical dimension islong and the horizontal dimension is short is traced, then the objectswill be aligned in the form of a matrix that is long in the verticaldirection.

Further, in a case where the length of the path in the verticaldirection corresponds to two objects and the length of the path in thehorizontal direction corresponds to four objects, then the objects willbe aligned in the form of two rows vertically and four columnshorizontally.

Further, the type of alignment that can be realized by executing thecontent display program 42 using the information processing apparatus ofthis embodiment is not limited to the linear, arcuate and right-anglealignments described above.

For example, in a case where the path traced takes on various shapessuch as that of a circle or spiral, it may be so arranged that theobjects will be aligned in conformity with this path.

Processing for implementing the functions set forth above will now bedescribed in detail. FIG. 5 is a flowchart illustrating display controlprocessing executed by the information processing apparatus according tothis embodiment.

This processing involves accepting an input from the coordinate inputunit 101, executing processing corresponding to this input and updatingthe display. This processing is repeated as long as there is no haltinstruction.

The program corresponding to this flowchart is included in the contentdisplay program 42, loaded in the RAM 3 and executed by the CPU 1.

First, the designation determination unit 102 accepts an input from thecoordinate input unit 101 at step S201 and then determines whether theinput is start of a designation. For example, if any point on thetouch-sensitive panel 6 is pressed, this would correspond to the startof a designation.

If it is determined in step S202 that a designation has started, thenthe processing of step S203 is executed, designation-start processing,described later, is executed, and then the processing of step S208 isexecuted.

If it is determined in step S202 that a designation has not started,then the processing of step S204 is executed and the designationdetermination unit 102 determines whether the input is designation-move.“Designation-move” is determined by detecting that a designated pointalready exists and that this point is moving.

For example, performing tracing motion on the touch-sensitive panel 6shown in FIG. 2B corresponds to “designation-move”. If designation-moveis determined in step S204, then designation-move processing, describedlater, is executed in step S205 and this is followed by execution ofprocessing of step S208.

If it is determined in step S204 that motion has not occurred, on theother hand, then the designation determination unit 102 determines instep S206 whether termination of a designation has occurred. Terminationof designation corresponds to removal of finger pressure from a point onthe touch-sensitive panel 6.

If it is determined in step S206 that designation has been terminated,then designation-terminate processing, described later, is executed instep S207, after which the processing of step S208 is executed.

If it is determined in step S206 that designation has not beenterminated, then the processing of step S208 is executed.

In step S208, the display controller 104 creates an image at therequired location, re-displays an image and updates the display, etc.

It should be noted that this processing accepts designation of aplurality of points simultaneously. By processing the start, move andthe termination of a designation as separate points, it is possible,from pressing of a certain point until termination of this operation, toprocess the pressing of another point.

If a plurality of input positions has been recognized simultaneously,the input positions are queued and processed one at a time.

FIG. 6 is a flowchart illustrating designation-start processing executedin step S203.

First, in step S301, the designation determination unit 102 determineswhether range designation is in progress. If a range is currently beingdesignated, processing is exited. The reason for this is to preventanother object that has not been designated from being selectedinadvertently during range designation.

If it is determined in step S301 that designation of a range is not inprogress, then, in step S302, the designation determination unit 102determines whether alignment designation is in progress. If alignmentdesignation is in progress, processing is exited. The reason for this isalso to prevent an object that has not been designated from beingselected inadvertently processed.

If it is determined in step S302 that alignment designation is not inprogress, then, in step S303, the designation determination unit 102determines whether the designated point lies inside an object area. Ifit is determined in step S303 that the designated point lies within anobject area, then the processing of step S304 is executed.

On the other hand, if it is determined at step S303 that the designatedpoint lies outside an object area, then the processing of step S309 isexecuted.

In step S304, the designation determination unit 102 determines whetherthere is a selected object at the designated coordinates.

If it is determined that there is no selected object at the designatedcoordinates, then the designated-state management unit 103 selects anobject at the designated coordinates at step S305 and ends this seriesof processing operations.

On the other hand, if it is determined in step S304 that there is aselected object at the designated coordinates, then, in step S306, thedesignated-state management unit 103 determines whether there hasalready been selection of a selected object at one point andcontinuation of operation (i.e., whether a single point has beendesignated or not).

This corresponds to a determination as to whether, with a selectedobject in the process of being pressed on the touch-sensitive panel 6, aselected object at another single point has been pressed or not.

If it is determined at step S306 that there has not been designation ofa single point, that is, that the present designation is the firstdesignation of a single point (which corresponds to pressing of theselected object with the finger 1201 of the left hand in the example ofFIG. 2E), then the processing of step S307 is executed.

In step S307, the object management unit 106 places the selected objectat the designated coordinates in an alignment state and sets a group ofobjects that are to be aligned, that is, an alignment group.

It should be noted that selected objects whose areas serially overlap anobject designated at a single point also attain the alignment state in asimilar manner. That is, even objects not directly at the designatedcoordinates are included in the alignment group.

Next, in step S308, the object management unit 106 sets the single-pointdesignated state and ends processing.

If it is determined in step S303 that the designated point is outsidethe object area, then, in step S309, the designated-state managementunit 103 determines whether this is a single-point designated state.

This corresponds to a determination as to whether an alignment group hasalready been pressed at a single point and, moreover, a portion outsidethe object area, that is, a background portion, has been pressed at onemore point. If it is determined in step S309 that a single point hasbeen designated, then the processing of step S310 is executed.

If single-point designation has been determined in step S306, then thedesignated-state management unit 103 sets two-point designation in stepS310.

In case of the path from step S306 to step S310, the designations of thetwo points are both on the alignment group. In case of the path fromstep S309 to step S310, one point is on the alignment group and onepoint is on the background.

When the processing of step S310 is executed, the object management unit106 next executes step S311, that is, starts alignment designation andthen ends this series of processing operations. It should be noted thatthe alignment designation state continues until the designation isterminated.

This corresponds to the case where the second point is designated by thefinger 1401 in FIG. 2E, the case where the second point is designated bythe thumb 1702 in FIG. 4A and the case where the second point isdesignated by the finger 1902 in FIG. 4C.

On the other hand, if it is determined in step S309 that this is not thesingle-point designated state, then, in step S312, the object managementunit 106 starts range designation and then ends processing.

This is the start of range designation for selecting a plurality ofobjects by tracing the background portion. The range designation statecontinues until such designation is terminated. This corresponds topressing the background with the finger 901 in FIG. 2B.

FIG. 7 is a flowchart illustrating designation-move processing in stepS205.

In step S401, the object management unit 106 determines whether a rangeis currently being designated. If range designation is in progress, thenthe designation determination unit 102 records the path of move in stepS406 and ends this series of processing operations.

On the other hand, if it is determined in step S401 that rangedesignation is not in progress, then, in step S402, the designated-statemanagement unit 103 determines whether alignment designation is inprogress. If alignment designation is in progress, then, in step S403,the designation determination unit 102 determines whether the designatedcoordinates represent a moving point. The setting of a moving point andfixed point is performed as follows: Initial move following the settingof two-point designation is detected. If after this detection the moveis to either of the two points, then the moving point and the fixedpoint are set in step S405.

If it is determined in step S403 that the designated coordinatesrepresent a moving point, then the designated-state management unit 103records the path of move in step S406 and ends this series of processingoperation.

On the other hand, if it is determined in step S403 that the designatedcoordinates do not represent a moving point, then, in step S404, thedesignated-state management unit 103 determines whether there is a fixedpoint. This is a determination as to whether the state is one in which afixed point and moving point have not yet been set.

If there is no fixed point, then the designated-state management unit103 sets a fixed point and a moving point in step S405. Of the twopoints for which the two-point designation has been set, a point atwhich move has been sensed is adopted as a moving point and the otherpoint is adopted as a fixed point.

Next, in step S406, the designated-state management unit 103 records thepath of move and ends this series of processing operation.

On the other hand, if it is determined in step S402 that alignmentdesignation is not in progress or if it is determined in step S404 thatthere is a fixed point, then, in step S407, the object management unit106 determines whether what is at the moving point is a selected object.

If a selected object is at the moving point, then, in step S408, theobject management unit 106 changes the coordinates in such a manner thatthe selected object will move and then ends this series of processingoperations.

Traversal of this path by reason of the fact that a fixed point is foundto exist in step S404 means that the fixed point has moved and that theselected object at the fixed point has been dragged.

Further, if it is determined in step S407 that there is no selectedobject at the moving point, then this series of processing operations isexited without any action being taken.

It should be noted that this designation-move processing is repeatedfrom start to end of move.

FIG. 8 is a flowchart illustrating the designation-terminate processingof step S207.

In step S501, the designated-state management unit 103 determineswhether range designation is in progress. If range designation is inprogress, then, in step S502, the object management unit 106 determineswhether an object exists in the designated range.

If an object exists in the designated range, then the object managementunit 106 selects the object in step S503 and executes the processing ofstep S504. If an object does not exist in the designated range, on theother hand, then the object management unit 106 executes the processingof step S504 directly.

In step S504, the designated-state management unit 103 terminates therange designation and ends this series of processing operations. Thiscorresponds to the finger 901 of the right hand being lifted from thetouch-sensitive panel 6 after it has finished tracing a circle aroundthe objects in FIG. 2B, thereby establishing the state in which thegroup 1001 has been selected in FIG. 2C.

On the other hand, if it is determined in step S501 that rangedesignation is not in progress, then, in step S505, the designated-statemanagement unit 103 determines whether alignment designation is inprogress. This corresponds to a determination as to whether the movingpoint has been moved in the two-point designation state and fingerpressure has been removed from one point.

If alignment designation is in progress, then, in step S506, the contenteditor 105 executes alignment processing. Alignment processing will bedescribed later with reference to FIG. 9.

After the alignment processing at step S506, the object management unit106 releases the alignment group in step S507 and the designated-statemanagement unit 103 terminates the alignment designation at step S508and ends this series of processing operations.

By virtue of the above-described processing, the state of the display onthe screen attains the states of the displays shown in FIGS. 2F, 4B and4D that prevail after the objects are aligned.

On the other hand, if it is determined in step S505 that alignmentdesignation is not in progress, then, in step S509, the designated-statemanagement unit 103 determines whether two-point designation is inprogress. This corresponds to a determination as to whether, followingdesignation of two points, finger pressure at one point has been removedwithout an alignment designation being made.

If two-point designation is in progress, the designated-state managementunit 103 performs a single-point designation setting and ends thisseries of processing operations.

Since the flow returns to the single-point designation at this time, astate is attained in which the next two-point designation will beaccepted. That is, of the designation of two points, it is possible tore-designate one of them.

If it is determined in step S509 that two-point designation is not inprogress, then this series of processing operations is exited. It shouldbe noted that a method of releasing an object that is in the selectedstate has not been mentioned here. Such a method will be describedlater.

FIG. 9 is a flowchart illustrating the alignment processing of stepS506.

First, in step S601, the designation determination unit 102 analyzes thepath of move. Next, if it is determined in step S602 that the path is astraight line a shown in FIG. 2E, then the processing of step S603 isexecuted.

In step S603, the display controller 104 and content editor 105 alignthe alignment group in the horizontal direction with the fixed pointserving as the fulcrum, as illustrated at 1501 in FIG. 2F, and then endprocessing.

On the other hand, if it is determined in step S602 that the path is nota straight line, then, in step S604, the designation determination unit102 determines whether the path is an arc of the kind indicated by thepath at 1701 in FIG. 4A.

If it is determined in step S604 that the path is an arc, then, in stepS605, the display controller 104 and content editor 105 align thealignment group in the shape of a fan in such a manner that the fixedpoint becomes the pivot of the fan (see 1801 in FIG. 4B). Processing isthen exited.

If it is determined in step S604 that the path is not an arc, then, instep S606, the designation determination unit 102 determines whether thepath is a right-angle line of the kind indicated by the path at 1902 inFIG. 4C.

If it is determined in step S606 that the path is a right-angle line,then, in step S607, the display controller 104 and content editor 105align the objects in the form of a matrix (see 2001 in FIG. 4D).Processing is then exited.

On the other hand, if it is determined in step S606 that the path is nota right-angle line, then, in step S608, the display controller 104 andcontent editor 105 place the alignment group on the path. Processing isthen exited.

The following is conceivable as one example of means for judging theshape of the path. First, the straight line from the starting point tothe end point is found. If the accumulation of distances between thisline and the path is smaller than an arbitrary value, then it is decidedthat the path is a straight line.

If the accumulation of deviations in distance between a first point anda second point during move is less than an arbitrary value, then it isdecided that the path is an arc. The two equal sides of an isoscelestriangle the base of which is a straight line between the starting andend points and the apex of which is 90 are found, and if theaccumulation of distances between these two sides and the path is lessthan an arbitrary value, then it is decided that the path defines aright angle.

Further, in the means for judging the shape of a path, the order inwhich straight line, arc and key are judged may be changed, or it may beso arranged that whichever has the smallest cumulative distance isselected rather than making the judgment in regular order.

Further, the degree of similarity with the shape of the path may befound using another shape approximation method, and whichever shape ismost similar may be applied. Methods of approximating the traces of awide variety of handwriting to geometrical shapes already exist and neednot be described here.

Further, information concerning an alignment designation may be storedbeforehand so as to make it easy to approximate shapes that are oftenutilized and the order may be changed so as to give precedence todetermination of shapes often utilized. Weighting may be applied tocomputation of degree of similarity.

Second Embodiment

Described in the first embodiment is processing for aligning objectswhen finger pressure is removed from one point of either of twodesignated points. However, it may be so arranged that the originalstate is restored after objects have been aligned.

For example, objects may be aligned when finger pressure is removed froma moving point of two designated points, and the time during which thefixed point is being pressed may be when the alignment display is inprogress.

It may be so arranged that when an object that the user wishes toexclude from an object group after it has been aligned is selected atone point that is not the above-mentioned fixed point, the object isthen excluded from the group and finger pressure is removed from thefixed point, the objects of the alignment group with the exception ofthe selected object are restored to the alignment state.

In this case, the objects are aligned when the fixed point is releasedfrom finger pressure while the moving point is being pressed. However,it may be so arranged that the state that prevailed prior to thealignment of the objects is restored. Further, an object other than onein the alignment group may be selected at one more point while thealignment display is in progress, and this object may be dragged intothe alignment group to add it to the alignment group.

Reference will now be had to the drawings to describe an example ofoperation for excluding an object currently being displayed in analignment from objects that are to be aligned.

FIG. 10A illustrates an example of display immediately after fingerpressure is removed from a moving point while a fixed point continues tobe pressed by a finger 2401 of the left hand, resulting in an alignmentof the kind indicated at 2402.

Starting from the state shown in FIG. 10A, one object in the alignmentgroup 2402 is selected by a finger 2501 of the right hand, asillustrated in FIG. 10B, the object is dragged upward, as shown in FIG.10C, and the finger 2501 of the right hand is removed. When this isdone, object 2701 is excluded from the alignment group, as shown in FIG.10D.

It should be noted that the object that was made the target of exclusioncorresponds to IMG0006 shown in FIG. 11A and that the status of“ALIGNMENT” of IMG0006 in the content management table 43 is changed to“FALSE”, as indicated at 2801 in FIG. 11A.

Next, if the stationary finger of the left hand is removed, the objectsother than the object 2701 that was excluded by the dragging operationreturn to a position 2901 that prevailed before the objects werealigned, as illustrated in FIG. 10E. This state is similar to that ofFIG. 2C except for the fact that the above-mentioned object has beenexcluded.

That is, the contents of the content management table 43 at this time isthe same as that shown in FIG. 3B with the exception of IMG0006, asillustrated in FIG. 11B.

The function implemented by this embodiment in addition to the functionsof the first embodiment is as described above. The processing forimplementing this function will now be described in detail withreference to flowcharts.

The flow of overall display control processing in this embodiment issimilar to that shown in the flowchart of FIG. 5. Designation start,move and termination of designation in this embodiment will be describedbelow.

FIG. 12 is a flowchart illustrating designation-start processing of thisembodiment executed in step S203.

This flowchart differs from that of FIG. 6 in that steps S2106 and S2110for determining whether an alignment display is in progress are insertedbetween steps S304 and S306 and between steps S303 and S309,respectively.

If it is determined in step S304 that there is a selected object at thedesignated coordinates, then the object management unit 106 determinesin step S2106 whether the alignment display is in progress. If it isdetermined in step S2106 that the alignment display is in progress, thenthe processing of step S305 is executed.

On the other hand, if it is determined in step SS2106 that the alignmentdisplay is not in progress, then the processing of step S306 isexecuted. In step S305, the object management unit 106 selects an objectthat is already in the selected state.

This corresponds to processing executed when an object in an alignmentgroup is selected to be excluded from the group. For example, itcorresponds to the case where the finger 2501 of the right hand in FIG.10B designated an object.

Further, if it is determined in step S303 that the designated point liesoutside an object area, then the object management unit 106 determinesin step S2110 whether the alignment display is in progress.

If it is determined in step S2110 that the alignment display is inprogress, then processing is exited. If the alignment display is not inprogress, the processing of step S310 is executed.

FIG. 13 is a flowchart illustrating move processing of this embodimentexecuted in step S205.

This flowchart differs from that of FIG. 7 in that steps S2207, S2208and S2209 are inserted between steps S402 and S407.

The object management unit 106 determines whether alignment designationis in progress in step S402 and executes the processing of step S403 ifalignment designation is in progress. If alignment designation is not inprogress, on the other hand, then the object management unit 106executes the processing of step S2207.

In step S2207, the object management unit 106 determines whether thealignment display is in progress. “Alignment display in progress” refersto a state in which an alignment designation is made, finger pressure isremoved from a moving point while designation of the fixed point remainsin effect and a temporary alignment state is displayed.

If it is determined in step S2207 that the alignment display is inprogress, then, in step S2208, the designation determination unit 102determines whether the designated coordinates represent a fixed point.

If it is determined that the designated coordinates are a fixed point,then, in step S2209, the object management unit 106 changes thecoordinates in such a manner that the entire alignment group moves.Processing is then exited.

On the other hand, if it is determined in step S2207 that the alignmentdisplay is not in progress, or if it is determined in step S2208 thatthe designated coordinates are not a fixed point, or if it is determinedin step S404 that a fixed point exists, then the processing of step S407is executed.

Further, if it is determined that the designated coordinates are not inthat of a selected object, processing is exited without any action beingtaken. If a fixed point is that of a selected object, then the objectmanagement unit 106 changes the coordinates of the selected object instep S408.

This permits range designation or the dragging of an object other than amoving point for designating alignment. It should be noted that thiscorresponds to movement of an object attendant upon movement of thefinger 2501 of the right hand in the example of FIG. 10C.

FIG. 14 is a flowchart illustrating designation-terminate processing ofthis embodiment executed in step S207.

The flowchart of FIG. 14 differs from that of FIG. 8 in terms of theprocessing that follows the determination in step S505 as to whether thealignment designation is in progress.

If it is determined in step S501 that range designation is not inprogress, then it is determined in step S505 whether alignmentdesignation is in progress. If alignment designation is in progress,then, in step S2306, the designated-state management unit 103 determineswhether a point from which finger pressure has been removed is a pointother than the two designated points.

If it is determined in step S2306 that finger pressure has been removedfrom coordinates other than those of the two designated points, thenprocessing is exited with no action being taken.

On the other hand, if it is determined in step S2306 that the point iseither one of the two designated points, then the alignment processingshown in FIG. 9 is executed in step S506.

Following the alignment processing of step S506, the designated-statemanagement unit 103 performs termination of the alignment designation instep S2308 and the display controller 104 and content editor 105 startthe alignment display in step S2309.

Next, in step S2310, the designated-state management unit 103 determineswhether the point from which finger pressure has been removed is amoving point. If it is determined that the point is a moving point,processing is exited.

On the other hand, if it is determined that the point is not a movingpoint, that is, in the case of a fixed point, the object management unit106 releases the alignment group in step S2311.

Next, in step S2312, the display controller 104 and content editor 105terminate the alignment display. Processing is then exited.

It should be noted that if either point is released after the alignmentdesignation is performed, the alignment display is performed. If themoving point is released, the alignment-display state is attained. Ifthe fixed point is released, however, the alignment-display state isterminated.

That is, the alignment-display state continues only in a state in whichthe fixed point is being maintained. An example of a state in whichfinger pressure has been removed from the moving point is FIG. 10A, inwhich the alignment display is presented.

Further, if it is determined at step S2305 that alignment designation isnot in progress, then, in step S2312, the object management unit 106determines whether the alignment display is in progress.

If the state is not the alignment-display state, processing is exiteddirectly. If it is determined that the alignment display is in progress,then the processing of step S2314 is executed.

It is determined in step S2314 whether the point at which designationhas been terminated is a fixed point. If this point is a fixed point,then, in step S2315, the object management unit 106 cancels thealignment and restores the objects of the alignment group to thecoordinates that prevailed prior to the alignment of the objects.

Next, in step S2311, the object management unit 106 releases thealignment group. Next, in step S2312, the display controller 104 andcontent editor 105 release the alignment display. Processing is thenexited.

An example of a case where designation of a fixed point is terminatedduring the presentation of the alignment display is FIG. 10E, in whichthe alignment display is released.

Further, if it is determined in step S2314 that the point is not a fixedpoint, then, in step S2318, the object management unit 106 determineswhether the point from which finger pressure has been removed lieswithin the area of the alignment group.

If the point is inside this area, then, in step S2316, thedesignated-state management unit 103 determines whether the point fromwhich finger pressure is that of an alignment object, which means anobject should be aligned.

It should be noted that if it is determined that the point is that of analignment object, then processing is exited without any action beingtaken. On the other hand, if it is determined that the point is not thatof an alignment object, then, in step S2317, the object management unit106 adds this object to the alignment group as a new alignment object.

This example means that in a case where another object is dragged intoan alignment group during the presentation of the alignment display, theobject is placed in the alignment group.

Further, if it is determined in step S2318 that the point is not insidethe alignment group, then, in step S2319, the object management unit 106determines whether the designated object is an alignment object. If itis determined that the designated object is not an alignment object,then processing is exited.

On the other hand, if it is determined that the designated object is analignment object, then, in step S2320, the alignment state is terminatedfor this object and the designated object is excluded from the alignmentgroup. The example of FIG. 10D corresponds to this situation, with theobject 2701 being excluded from the alignment group.

Further, the processing from step S2318 onward drags the object whilethe fixed point is kept pressed during the alignment display, therebyadding the object to or excluding the object from the alignment group.

It should be noted that in a case where an object in thealignment-display state has been placed on another object, it is notadded to the alignment group. Further, only in a case where an objecthas been selected and left inside the area of an alignment group canthis object be added to the alignment group.

In the flowchart of FIG. 14, no consideration is given to processing ina case where finger pressure at one point is removed without performingan alignment designation from a two-point designation. However, thisprocessing can be implemented by adding on the processing of steps S509and S510 following the “NO” branch in step S2313.

In the first embodiment, if a fixed point has moved, coordinates arechanged so as to move the selected object at this fixed point. However,coordinates may be changed so as to move the entire alignment group atthis fixed point and the starting point of the alignment at the time ofalignment processing may be made the fixed point after the change incoordinates.

Further, in the first embodiment, the first-moved point of twodesignated points is adopted as the moving point and the other point isadopted as the fixed point.

However, in a case where an alignment object is being pressed at twopoints, a change in the distance between the two points may be adoptedas the path of an alignment designation without a fixed point beingdecided, and the center between the two points may be adopted as thecenter point of the alignment.

Further, in a case where an alignment group is pressed at one point andthe background is pressed at one point, the point at which the alignmentgroup is being pressed may be decided upon as the moving pointbeforehand, and the point at which the background is being pressed maybe decided upon as the fixed point. In this case, if the fixed point hasbeen moved, then the fulcrum of the alignment also is moved.

In the first embodiment, if finger pressure is removed from one point ina state in which two points have been designated, the single-pointdesignation is restored. That is, in a case where an alignment group ispressed at one point and the background is being pressed at one point,if finger pressure is removed from the point at which the alignmentgroup is being pressed, then the background point becomes the singlepoint in the single-point designation.

In a case where finger pressure is subsequently applied somewhere otherthan in the alignment group, then alignment designation in a state inwhich the alignment group is not pressed becomes possible and alignmentat a position distanced away from the original alignment group becomespossible.

However, it may be so arranged that when the point at which thealignment group is being pressed is released in a case where thealignment group is pressed at one point and the background is beingpressed at one point, the single-point designation also is terminated,the alignment group is released and the state in which only thebackground point is being pressed during the alignment designation iseliminated.

In the first embodiment, an alignment is performed based upon shape inthe direction of movement. However, the distance of the moving point mayalso be recorded and objects may be aligned by overlapping them orwidening the spacing between them so as to fall within the range of thisdistance.

In a case where path of movement resembles a key, area may be found fromthe distance moved vertically and the distance moved horizontally andobjects may be aligned by overlapping them or widening the spacingbetween them so as to fall within this area.

In the second embodiment, the order of an alignment is decided by theorder of the IDs. However, the order may be changed depending uponanother object attribute, for example, the date and time of creation.

Further, with regard to objects to which comments have been appended,those objects having similar comments may be gathered together andplaced at nearby positions.

Further, it may be so arranged that objects are placed so that whatimmediately underlies a first designation is adopted as the startingposition of an alignment and what immediately underlies a seconddesignation is adopted as the end point of the alignment.

Further, in the second embodiment, coordinates that prevailed beforeobjects were aligned are restored when an alignment is released.However, it is permissible to adopt an alignment state that reduces thedisplay range, as by overlapping objects in conformity with angle ofrotation.

In each of the foregoing embodiments, objects are displayed asrectangles but the invention is not limited to such an arrangement.Further, in case of an object having a complicated contour, vectorrepresentation may be used.

In each of the foregoing embodiments, there are three types of inputsfor coordinate designation, namely start, move and termination ofdesignation.

However, not only move but also continuation may be adopted as a targetof processing.

For example, an input event to the touch-sensitive panel is detectedcontinually at fixed time intervals and the type of input is judgeddepending upon the following conditions:

In a case where an input was not detected at the same position at animmediately preceding detection timing (referred to as “immediatelybefore” below) and, moreover, a point at which there was no input at anadjacent position was detected immediately before, this situation isjudged to be “designation start”. In a case where an input at the sameposition as immediately before was detected, this situation is judged tobe “continuation”.

In a case where an input was detected at a position that did not existimmediately before and, moreover, an input was detected at an adjacentposition immediately before but an input is not detected at thisposition at present (the latest detection timing), this situation isjudged to be “designation move”. Further, in a case where an input wasdetected immediately before but not at present, this situation is judgedto be “designation termination”.

As for the content of continuation processing, it may be so arrangedthat if an area in which a plurality of objects overlap continues to bepressed for a fixed period of time, all of the objects are placed in theselected state.

In the first embodiment, no mention is made of a method of de-selectingan object. Further, in the second embodiment, no method is made of amethod of de-selecting an object in a case where the alignment displayis not in progress.

With regard to these instances, in a case where coordinate-designationcontinuation time is recorded and the time duration of designation andtermination is shorter than a prescribed time, this means that there isno designation of an object to be aligned and it is permissible toterminate a selected object by toggling or to de-select a selectedobject by clicking the background.

Other Embodiments

Although embodiments of the present invention have been described above,the present invention may be applied to a system constituted by aplurality of devices (e.g., a host computer, interface, reader, printer,etc.) or to an apparatus comprising a single device (e.g., a copier orfacsimile machine, etc.).

Furthermore, the object of the invention is attained also by supplying aprogram, which implements the functions of the foregoing embodiments,directly or remotely to a system or apparatus, reading the suppliedprogram codes by the system or apparatus, and then executing the programcodes.

Accordingly, since the functions and processing of the present areimplemented by computer, the computer program per se installed on thecomputer also implements the present invention. In other words, thecomputer program per se for implementing the above-described functionsand processing also is one aspect of the present invention.

In this case, so long as the system or apparatus has the functions ofthe program, the form of the program, for example, object code, aprogram executed by an interpreter or script data supplied to anoperating system, etc., does not matter.

Examples of computer-readable recording media for supplying the programare a flexible disk, hard disk, optical disk, magneto-optical disk,CD-ROM, CD-R and CD-RW.

Further examples of recording media are magnetic tape, a non-volatiletype memory card, ROM and DVD (DVD-ROM, DVD-R), etc.

Further, the program may be downloaded from a website on the Internetusing a browser possessed by a client computer.

That is, the computer program per se of the present invention or acompressed file that has an automatic installation function may bedownloaded to a recording medium such as a hard disk from the website.Further, implementation is possible by dividing the program codeconstituting the program of the present invention into a plurality offiles and downloading the files from different websites.

In other words, there are cases where a WWW server that downloads, tomultiple users, the program files that implement the functions andprocesses of the present invention by computer also is a structuralrequisite of the present invention.

Further, the program of the present invention may be encrypted, storedon a computer-readable storage medium such as a CD-ROM and distributedto users.

In this case, only users who meet certain requirements are allowed todownload decryption key information from a website via the Internet, theencrypted program may be decrypted using the key information and thenexecuted, and the program may be installed on a computer.

Further, the functions of the embodiments may be implemented by having acomputer execute a program that has been read.

Furthermore, an operating system or the like running on the computer mayperform all or a part of the actual processing based upon theindications in the program. Of course, the functions of the embodimentscan be implemented in this case as well.

Furthermore, it may be so arranged that a program that has been readfrom a recording medium is written to a memory provided on a functionexpansion board inserted into the computer or provided in a functionexpansion unit connected to the computer.

A CPU or the like provided on the function expansion board or functionexpansion unit may perform some or all of the actual processing basedupon the indications in the program. There are instances where thefunctions of the foregoing embodiments are implemented in this manner aswell.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2008-181985, filed Jul. 11, 2008, and No. 2009-089182, filed Apr. 1,2009, which are hereby incorporated by reference herein in theirentirety.

1.-6. (canceled)
 7. An information processing apparatus comprising: adisplay unit configured to display a plurality of objects with anoverlap; a touch-sensitive panel superimposed upon a display surface ofthe display unit; an obtaining unit configured to obtain a position of afirst control point based on a first touch on the touch-sensitive paneland a position of a second control point based on a second touch on thetouch-sensitive panel; and an alignment unit configured to align theplurality of objects based on the obtained positions of the first andsecond control points.
 8. The apparatus according to claim 7, whereinthe plurality of objects comprise thumbnail images of image files. 9.The apparatus according to claim 7, wherein the alignment unit restoresthe placement of the plurality of objects to the original when the firsttouch is released.
 10. The apparatus according to claim 7, wherein thealignment unit aligns the plurality of objects in one dimension betweenthe positions of the first and second control points.
 11. The apparatusaccording to claim 10, wherein the alignment unit aligns the pluralityof objects with an overlap between the positions of the first and secondcontrol points.
 12. The apparatus according to claim 10, wherein thealignment unit aligns the plurality of objects to be placed at intervalsbetween the positions of the first and second control points.
 13. Theapparatus according to claim 10, wherein the alignment unit determinesthe order of an alignment based on the date and time of creation.
 14. Amethod for operating an information processing apparatus having atouch-sensitive panel superimposed upon a display surface of a displayunit, the method comprising the steps of: displaying a plurality ofobjects with an overlap; obtaining a position of a first control pointbased on a first touch on the touch-sensitive panel and a position of asecond control point based on a second touch on the touch-sensitivepanel; and aligning the plurality of objects based on the obtainedpositions of the first and second control points.
 15. The methodaccording to claim 14, wherein the plurality of objects comprisethumbnail images of image files.
 16. The method according to claim 14,wherein the alignment step restores the placement of the plurality ofobjects to the original when the first touch is released.
 17. The methodaccording to claim 14, wherein the alignment step aligns the pluralityof objects in one dimension between the positions of the first andsecond control points.
 18. The method according to claim 17, wherein thealignment step aligns the plurality of objects with an overlap betweenthe positions of the first and second control points.
 19. The methodaccording to claim 17, wherein the alignment step aligns the pluralityof objects to be placed at intervals between the positions of the firstand second control points.
 20. The method according to claim 17, whereinthe alignment step determines the order of an alignment based on thedate and time of creation.
 21. A computer-readable storage mediumstoring a program for causing a computer to execute a method foroperating an information processing apparatus having a touch-sensitivepanel superimposed upon a display surface of a display unit, the methodcomprising the steps of: displaying a plurality of objects with anoverlap; obtaining a position of a first control point based on a firsttouch on the touch-sensitive panel and a position of a second controlpoint based on a second touch on the touch-sensitive panel; and aligningthe plurality of objects based on the obtained positions of the firstand second control points.